% /*******************************************************************************
%  * Constant Correction Method (main routine)
%  * *****************************************************************************
%  * The key point is to compute the Correction Constant to compensate for errors
%  * then applying trunc_mult routine to have the final product.
%  * 
%  * @param a     Multiplicand
%  * @param b     Multiplier
%  * @param m     Multiplicand Width
%  * @param n     Multiplier Width
%  * @param r     Product Width
%  * @param k     Extra bits to keep
%  * @return      Estimated product
%  */
function [p,corr_const] = ccm(a, b, m, n, r, k)
corr_const = ccm_const(m,n,r,k);
p = trunc_mult(a, b, corr_const, m, n, r, k);
end